difference between microprocessor and microcontroller